home *** CD-ROM | disk | FTP | other *** search
- *---------------------------------------
- *
- * ébéoétÉφâéü[âhâüâCâô
- *
- * by Shiroh Nakaya
- *
- *---------------------------------------
- vs_cpu:
- lea.l p1_joy_chg+2(pc),a0 * Ä⌐î╚Åæé½è╖éª
- move.w #joy_0-(p1_joy_chg+2),(a0)
-
- lea.l p2_joy_chg+2(pc),a0
- move.w #joy_cpu-(p2_joy_chg+2),(a0)
-
- lea.l main_loop(pc),a0
- move.l #$08380001,(a0) * btst #1,é╠âRü[âh
-
- lea.l demo_process(pc),a0
- move.l #$4e714e71,(a0) * nopé╠âRü[âhô±é┬ò¬
-
- lea.l demo_exit(pc),a0
- move.w #$4e71,(a0) * nopé╠âRü[âh
-
- movea.l a5,a1 * âLâââëâfü[â^âZâbâg
- movea.l #PCG_UP,a2
- movea.l #SP_PALETTE+32,a3
- bsr chara_set
-
- clr.w round_cnt * âëâEâôâhâJâEâôâ^ü[
- clr.w vs_cpu_score * âXâRâAÅëè·ë╗
-
- vs_cpu_loop:
- cmpi.w #7,round_cnt * â{âXÉφé╚éτâüâbâZü[âWò\Ī
- bne @f
-
- move.w #$0000,BG_CTRL * âXâvâëâCâgò\Īénéeée
- moveq.l #$23,d0
- moveq.l #8,d1
- moveq.l #10,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l grid_mess_1(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0
- moveq.l #4,d1
- moveq.l #12,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l grid_mess_2(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- move.w #240-1,d1
- 1:
- V_WAIT
- bsr joy_0
- btst #6,d0
- beq 2f
- dbra d1,1b
- 2:
-
- moveq.l #$23,d0
- moveq.l #8,d1
- moveq.l #10,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0
- moveq.l #4,d1
- moveq.l #12,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- move.w #$0200,BG_CTRL * âXâvâëâCâgò\Īéném
- @@:
- lea.l ch_cpu(pc),a0 * ôGâLâââëé≡æIæ≡
- move.w round_cnt(pc),d0
- moveq.l #0,d1
- move.b 0(a0,d0.w),d1
- moveq.l #0,d2
-
- lea.l P2_DATA(a5),a1
- movea.l a5,a2
- cmp.w C_NO(a2),d1
- bne @f
- cmp.w C_COL(a2),d2
- bne @f
- bchg #0,d2
- @@:
- move.w d2,C_COL(a1)
- move.w d1,C_NO(a1)
- move.w #208,C_X(a1)
- move.w #128,C_Y(a1)
- move.w #1,C_LR_F(a1)
- movea.l #PCG_DOWN,a2
- movea.l #SP_PALETTE+64,a3
- bsr chara_set
-
- lea.l P2_A_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P2_H_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P2_V_DATA(a5),a1
- move.w #240,C_Y(a1)
-
- movea.l a5,a1
- move.w #80,C_X(a1)
- move.w #128,C_Y(a1)
- clr.w C_M_F(a1)
- clr.w C_AK_F(a1)
- move.w #1,C_AM_F(a1)
- clr.w C_HIT_C(a1)
- clr.w C_ANI_WC(a1)
- clr.w C_CNT(a1)
- clr.w C_HIT_F(a1)
- move.w #240,C_K(a1)
- clr.w C_B_JOY(a1)
- clr.w C_LR_F(a1)
-
- lea.l P1_A_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P1_H_DATA(a5),a1
- clr.w C_M_F(a1)
-
- lea.l P1_V_DATA(a5),a1
- move.w #240,C_Y(a1)
-
- bsr vs_move
-
- lea.l P2_DATA(a5),a1
- tst.w C_K(a1) * ébéoétâLâââëé¬Åƒé┴é╜ÅΩìç
- bpl game_over * âQü[âÇâIü[âoü[
-
- move.w C_K(a5),d0 * âXâRâAîvÄZüi ÄcéΦæ╠ù═éαô╛ô_é╞é╡é─ë┴ÄZüj
- bpl @f * æèæ┼é┐ôÖé┼æ╠ù═é¬â}âCâiâXé╛é┴é╜ÅΩìçé═
- moveq.l #0,d0 * éOé╔é╖éΘ
- @@:
- add.w stage_score(pc),d0
- add.w d0,vs_cpu_score * âXâRâAù▌îv
-
- cmp.w stage_high_score(pc),d0 * ÆPêΩâXâeü[âWânâCâXâRâAö╗ÆΦ
- bcs @f
- move.w d0,stage_high_score
- @@:
- addq.w #1,round_cnt
- cmpi.w #8,round_cnt
- bne vs_cpu_loop
-
- V_WAIT
- move.w #$0000,BG_CTRL * âXâvâëâCâgò\Īénéeée
-
- movea.l #SP_SCROLL,a2 * âGâôâfâBâôâOÅêù¥
- move.w #70-1,d0 * âXâvâëâCâgé≡ëµû╩èOé╓
- @@:
- clr.l (a2)+
- dbra d0,@b
-
- movea.l #pcg_data+CUR+320,a1
- movea.l #PCG_UP,a2
- move.w #8-1,d0 * âOâëâtâBâbâNëBé╡éaéfâpâ^ü[âôô]æù
- @@:
- move.l (a1)+,(a2)+
- dbra d0,@b
- movea.l #PCG_DOWN,a3 * âOâëâtâBâbâNé≡ëBé╖
- move.l #$0200_0200,d3
- move.w #32-1,d1
- 1:
- movea.l a3,a4
- move.w #16-1,d2
- 2:
- move.l d3,(a4)+
- dbra d2,2b
- adda.w #128,a3
- dbra d1,1b
-
- movea.l a5,a1
- move.w C_NO(a1),d0
- add.w d0,d0
- add.w d0,d0
- lea.l ending_graphic(pc),a0 * âGâôâfâBâôâOâOâëâtâBâbâNé≡éoébéfé╓
- movea.l 0(a0,d0.w),a0
- movea.l #PCG_UP+128,a1
- move.w #512-1,d4
- @@:
- move.l (a0)+,(a1)+
- dbra d4,@b
-
- movea.l #SP_SCROLL,a6
- move.w #96,d2
- move.w #$0101,d6 * âXâvâëâCâgé┼ò\Ī
- move.w #4-1,d3
- 1:
- move.w d2,d5
- move.w #4-1,d4
- move.w #112,d1
- 2:
- move.w d1,(a6)+
- move.w d5,(a6)+
- move.w d6,(a6)+
- move.w #3,(a6)+
- addq.w #1,d6
- addi.w #16,d1
- dbra d4,2b
- addi.w #16,d2
- dbra d3,1b
-
- move.w #$0201,BG_CTRL * éaéfò\Īéném
-
- move.w vs_cpu_score(pc),d0 * ô╛ô_âfü[â^é≡ò╢ÄÜù±é╔ò╧è╖
- bsr bin2str_score * score_mess_2é╔ò╧è╖ò╢ÄÜù±
-
- moveq.l #$23,d0 * ô╛ô_âüâbâZü[âW
- moveq.l #10,d1
- moveq.l #1,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l score_mess_1(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$21,d0
- lea.l score_mess_2(pc),a1
- trap #15 * IOCS _B_PRINT
-
- moveq.l #$23,d0 * âGâôâfâBâôâOâüâbâZü[âW
- moveq.l #5,d1
- moveq.l #10,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l end_mess_1(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0
- moveq.l #2,d1
- moveq.l #12,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l end_mess_2(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0
- moveq.l #3,d1
- moveq.l #14,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l end_mess_3(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- st $00e840c0 * écélé`ébâtâëâOâNâèâA
- lea.l ending_bgm_data(pc),a1
- move.w #32-1,d2 * éaéfélüiüHüjëëæt
- ending_bgm_loop:
- move.l (a1),d0 * âfü[â^âAâhâîâX
- move.w 4(a1),d1 * ô]æùâoâCâgÉö
- move.b #1,$00e92001 * é`écéoébélÆΓÄ~
- move.b #$20,$e840c7 * écélé`ébô«ì∞ÆåÆfüiÉ╝É∞æPÄiÄüé╠Æmîbüj
- ending_opm_read_loop:
- tst.b OPM_DATA
- bmi ending_opm_read_loop
- move.b #$1b,OPM_REG_NO * âNâìâbâNÉ▌ÆΦ
- bset #7,OPM_DATA
- move.b #$08,$00e9a005 * âTâôâvâèâôâOâîü[âgÉ▌ÆΦ
- move.b #$80,$00e840c4 * écélé`ébÉ▌ÆΦ
- move.b #$04,$00e840c6
- move.b #$05,$00e840e9
- move.b #$01,$00e840ed
- move.b #$05,$00e840f1
- move.b #$72,$00e840c5
- st $00e840c0
- move.l d0,$00e840cc * ô]æùî│âAâhâîâX
- move.l #$00e92003,$00e840d4 * ô]æùɵâAâhâîâXü@é╖é╚éφé┐é`écéoébél
- move.w d1,$00e840ca * ô]æùâTâCâY
- move.b #$88,$00e840c7 * ô]æùèJÄn
- move.b #2,$00e92001 * é`écéoébélö¡É║èJÄn
- lea.l 6(a1),a1
-
- moveq.l #0,d7 * âEâGâCâgâïü[âvë±Éöé≡ïüé▀éΘ
- move.w d1,d7 * éVüDéWéïégéÜì─É╢é═éPü^éUéOòbè╘é╔éUéTâoâCâg
- divu.w #65,d7
-
- ending_bgm_wait:
- V_WAIT
- bsr joy_0 * âgâèâKé¬ëƒé│éΩé╜éτÅIù╣
- btst #6,d0
- beq ending_exit
- subq.w #1,d7
- bne ending_bgm_wait
- ending_bgm_loop_exit:
- dbra d2,ending_bgm_loop
- ending_exit:
- move.b #1,$00e92001 * é`écéoébélÆΓÄ~
- st $00e840c0 * écélé`ébâtâëâOâNâèâA
-
- moveq.l #$23,d0
- moveq.l #10,d1
- moveq.l #1,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0
- moveq.l #5,d1
- moveq.l #10,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0
- moveq.l #2,d1
- moveq.l #12,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$23,d0
- moveq.l #3,d1
- moveq.l #14,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- move.w vs_cpu_score(pc),d0 * ânâCâXâRâAö╗ÆΦ
- cmp.w high_score(pc),d0
- bcs @f
- move.w d0,high_score
-
- @@:
- movea.l #SP_SCROLL,a2
- move.w #70-1,d0
- @@:
- clr.l (a2)+
- dbra d0,@b
-
- game_over:
- moveq.l #$23,d0
- moveq.l #8,d1
- moveq.l #13,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l over_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- move.w #60-1,d0
- @@:
- V_WAIT
- dbra d0,@b
-
- moveq.l #$23,d0
- moveq.l #8,d1
- moveq.l #13,d2
- trap #15 * IOCS _B_LOCATE
- moveq.l #$21,d0
- lea.l no_mess(pc),a1
- trap #15 * IOCS _B_PRINT
- moveq.l #$1f,d0
- trap #15 * IOCS _B_CUROFF
-
- rts
- *---------------------------------------
- .even
- ending_graphic:
- .dc.l pcg_data+KAN_E,pcg_data+JOH_E,pcg_data+HAN_E,pcg_data+JUI_E
- .dc.l pcg_data+GRI_E,pcg_data+DAN_E,pcg_data+NAN_E,pcg_data+BOB_E
- round_cnt:
- .dc.w 0
- vs_cpu_score:
- .dc.w 0
- ch_cpu:
- .dc.b 0,1,2,3,5,6,7,8
- .even
- ending_bgm_data:
- .dc.l adpcm_data+KAN04
- .dc.w 1612
- .dc.l adpcm_data+JOH01
- .dc.w 670
- .dc.l adpcm_data+JOH01
- .dc.w 670
- .dc.l adpcm_data+JOH05
- .dc.w 4330
- .dc.l adpcm_data+HAN01
- .dc.w 1700
- .dc.l adpcm_data+JUI01
- .dc.w 1740
- .dc.l adpcm_data+JUI04
- .dc.w 574
- .dc.l adpcm_data+NAN06
- .dc.w 482
- .dc.l adpcm_data+KAN03
- .dc.w 2176
- .dc.l adpcm_data+JOH02
- .dc.w 932
- .dc.l adpcm_data+JOH02
- .dc.w 932
- .dc.l adpcm_data+NAN04
- .dc.w 2178
- .dc.l adpcm_data+HAN01
- .dc.w 1700
- .dc.l adpcm_data+KAN01
- .dc.w 534
- .dc.l adpcm_data+NAN05
- .dc.w 2880
- .dc.l adpcm_data+JOH04
- .dc.w 2384
- .dc.l adpcm_data+DAN03
- .dc.w 292
- .dc.l adpcm_data+JUI03
- .dc.w 636
- .dc.l adpcm_data+JOH03
- .dc.w 2238
- .dc.l adpcm_data+JOH03
- .dc.w 4476
- .dc.l adpcm_data+JUI03
- .dc.w 636
- .dc.l adpcm_data+KAN06
- .dc.w 1440
- .dc.l adpcm_data+KAN06
- .dc.w 2880
- .dc.l adpcm_data+KAN06
- .dc.w 2880
- .dc.l adpcm_data+JOH03
- .dc.w 4476
- .dc.l adpcm_data+HAN01
- .dc.w 3400
- .dc.l adpcm_data+JUI02
- .dc.w 3192
- .dc.l adpcm_data+DAN02
- .dc.w 2880
- .dc.l adpcm_data+NAN05
- .dc.w 2880
- .dc.l adpcm_data+KO
- .dc.w 2880
- .dc.l adpcm_data+DAN03
- .dc.w 292
- .dc.l adpcm_data+NAN06
- .dc.w 482
- *---------------------------------------